package com.flong.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Vector;

/**
 * @Description 专门处理对象的一个帮助类  
 * @ClassName   ObjectUtil  
 * @Date        2017年5月11日 下午5:53:22  
 * @Author      liangjilong  
 * Copyright (c) All Rights Reserved, 2017.
 */
@SuppressWarnings("all")
public class ObjectUtil {
	/**
	 * @Description 判断对象为空
	 * @param obj
	 * @return 参数
	 * @return boolean 返回类型(不空的时候返回true，其他返回false)
	 */
	public static boolean isEmpty(Object obj) {
		if(obj==null||obj==""||obj.toString().length()==0){
			return true;
		} else  if (obj instanceof String) {
			return ((String) obj).isEmpty()||((String) obj).length()==0;
		} else if (obj instanceof Map) {
			return ((Map) obj).size()==0 || ((Map) obj).isEmpty();
		} else if (obj instanceof HashMap) {
			return ((HashMap) obj).size()==0 || ((HashMap) obj).isEmpty();
		}else if (obj instanceof Vector) {
			return ((Vector) obj).size()==0 ||((Vector) obj).isEmpty();
		} else  if ((obj instanceof List)) {
			return ((List) obj).size() == 0 || ((List) obj).isEmpty();
		} else  if ((obj instanceof ArrayList)) {
			return ((ArrayList) obj).size() == 0 || ((ArrayList) obj).isEmpty();
		} 
		return false;
	}

	/**
	 * @Description 判断对象不能为空
	 * @Author liangjilong
	 * @Date 2016年12月26日 上午10:47:05
	 * @param obj
	 * @return 参数
	 * @return boolean 返回类型(不为空的时候返回true，其他返回false)
	 */
	public static boolean isNotEmpty(Object obj) {
		return !isEmpty(obj);
	}
	
	/**
	 * @Description 判断数组对象不能为空
	 * @param obj
	 * @return 参数
	 * @return boolean 返回类型(不为空的时候返回true，其他返回false)
	 */
	public static boolean isNotEmpty(Object[] objs) {
		boolean reflag = true;
		if (objs != null && objs.length > 0) {
			for (Object obj : objs) {
				boolean flag = isNotEmpty(obj);
				if (flag) {
					reflag = true;
					break;
				} 
			}
		} else {
			reflag = false;
		}
		return reflag;
	}
	
	/**
	 * @Description 判断数组对象不能为空
	 * @param obj
	 * @return 参数
	 * @return boolean 返回类型(不为空的时候返回true，其他返回false)
	 */
	public static boolean isNotEmpty(List<Object> objs) {
		boolean reflag = true;
		if (objs != null && objs.size() > 0) {
			for (Object obj : objs) {
				boolean flag = isNotEmpty(obj);
				if (flag) {
					reflag = true;
					break;
				} 
			}
		} else {
			reflag = false;
		}
		return reflag;
	}
	
	/**
     * @Description 返回缩写的电话号码  
     * @Author      liangjilong  
    * @Email       jilongliang@sina.com 
     * @Date        2017年9月11日 下午2:21:20  
     * @param mobile
     * @return 参数  
     * @return String 返回类型
	 */
	public static String retMobileAbbr(String mobile){
		String  str = "";
		for (int i = 0; i < mobile.length(); i++) {
			if (i == mobile.length()-11) {
				str += mobile.charAt(i);
			} else if(i == mobile.length()-10) {
				str += mobile.charAt(i);
			}else if(i == mobile.length()-9) {
				str += mobile.charAt(i);
			}else if(i == mobile.length()-3) {
				str += mobile.charAt(i);
			}else if(i == mobile.length()-2) {
				str += mobile.charAt(i);
			}else if(i == mobile.length()-1) {
				str += mobile.charAt(i);
			}else {
				str += "*";
			}
		}
		return str;
	}

	 
}